髿§èœã³ã³ãã¥ãŒãã£ã³ã°ã«ããã䞊åã¢ã«ãŽãªãºã ãæ·±ãæ¢æ±ããå¿ é ã®æŠå¿µãå®è£ æŠç¥ããããŠäžçã®ç§åŠè ãæè¡è åãã®å®äžçã¢ããªã±ãŒã·ã§ã³ãç¶²çŸ ããŸãã
髿§èœã³ã³ãã¥ãŒãã£ã³ã°ïŒäžŠåã¢ã«ãŽãªãºã ã®ç¿åŸ
髿§èœã³ã³ãã¥ãŒãã£ã³ã°ïŒHPCïŒã¯ãç§åŠç ç©¶ãå·¥åŠã·ãã¥ã¬ãŒã·ã§ã³ããéèã¢ããªã³ã°ã人工ç¥ç¥èœã«è³ããŸã§ãæ°å€ãã®åéã§ãŸããŸãéèŠã«ãªã£ãŠããŸããHPCã®äžæ žã«ã¯äžŠååŠçã®æŠå¿µããããè€éãªã¿ã¹ã¯ãåæã«å®è¡ã§ããå°ããªãµãåé¡ã«åå²ããŸãããã®äžŠåå®è¡ã¯ããã«ãã³ã¢ããã»ããµãGPUã忣ã³ã³ãã¥ãŒãã£ã³ã°ã¯ã©ã¹ã¿ã®èœåãæŽ»çšããããã«ç¹å¥ã«èšèšããã䞊åã¢ã«ãŽãªãºã ã«ãã£ãŠå¯èœã«ãªããŸãã
䞊åã¢ã«ãŽãªãºã ãšã¯äœãïŒ
䞊åã¢ã«ãŽãªãºã ãšã¯ãè€æ°ã®åœä»€ãåæã«å®è¡ã§ããã¢ã«ãŽãªãºã ã§ããäžåºŠã«äžã€ã®ã¹ããããå®è¡ãã鿬¡ã¢ã«ãŽãªãºã ãšã¯ç°ãªãã䞊åã¢ã«ãŽãªãºã ã¯äžŠè¡æ§ãå©çšããŠèšç®ãé«éåããŸãããã®äžŠè¡æ§ã¯ã以äžã®ãããªæ§ã ãªæè¡ãéããŠéæãããŸãã
- ããŒã¿äžŠåæ§ïŒåãæäœãããŒã¿ã®ç°ãªãéšåã«åæã«é©çšãããŸãã
- ã¿ã¹ã¯äžŠåæ§ïŒç°ãªãã¿ã¹ã¯ãåæã«å®è¡ãããå€ãã®å Žåãç°ãªãããŒã¿ã»ãããé¢äžããŸãã
- åœä»€ã¬ãã«ã®äžŠåæ§ïŒããã»ããµãåäžã¹ã¬ããå ã§è€æ°ã®åœä»€ãåæã«å®è¡ããŸãïŒéåžžã¯ããŒããŠã§ã¢ã«ãã£ãŠç®¡çãããŸãïŒã
å¹ççãªäžŠåã¢ã«ãŽãªãºã ãèšèšããã«ã¯ãéä¿¡ãªãŒããŒããããè² è·åæ£ãåæãªã©ã®èŠçŽ ãæ éã«èæ ®ããå¿ èŠããããŸãã
ãªã䞊åã¢ã«ãŽãªãºã ã䜿çšããã®ãïŒ
䞊åã¢ã«ãŽãªãºã ã䜿çšããäž»ãªåæ©ã¯ãèšç®éçŽçãªã¿ã¹ã¯ã®å®è¡æéãççž®ããããšã§ããã ãŒã¢ã®æ³åãæžéããã«ã€ããŠãããã»ããµã®ã¯ããã¯é床ãäžããã ãã§ã¯ãå€§å¹ ãªæ§èœåäžãéæããããã®å®è¡å¯èœãªè§£æ±ºçã§ã¯ãªããªããŸããã䞊ååŠçã¯ãè€æ°ã®åŠçè£ çœ®ã«äœæ¥è² è·ã忣ãããããšã§ããã®éçãå æããæ¹æ³ãæäŸããŸããå ·äœçã«ã¯ã䞊åã¢ã«ãŽãªãºã ã¯ä»¥äžãæäŸããŸãã
- å®è¡æéã®ççž®ïŒäœæ¥è² è·ã忣ãããããšã§ãã¿ã¹ã¯ãå®äºããããã«å¿ èŠãªå šäœæéãå€§å¹ ã«ççž®ã§ããŸããå°çèŠæš¡ã®æ°åã·ãã¥ã¬ãŒã·ã§ã³ãæ³åããŠã¿ãŠãã ãããåäžããã»ããµã§é次çã«ã·ãã¥ã¬ãŒã·ã§ã³ãå®è¡ãããšæ°é±éããããããããŸããããã¹ãŒããŒã³ã³ãã¥ãŒã¿ã§äžŠåå®è¡ããã°ããã®æéãæ°æéããããã¯æ°åã«ççž®ã§ããŸãã
- åé¡èŠæš¡ã®æ¡å€§ïŒäžŠååŠçã«ãããåäžãã·ã³ã®ã¡ã¢ãªã«åãŸããªãã»ã©å€§ããªåé¡ã«åãçµãããšãã§ããŸããäŸãã°ãã²ããã¯ã¹ã«ããã巚倧ãªããŒã¿ã»ããã®åæããè€éãªæµäœååŠã®ã·ãã¥ã¬ãŒã·ã§ã³ãªã©ã§ãã
- 粟床ã®åäžïŒå Žåã«ãã£ãŠã¯ã䞊ååŠçã䜿çšããŠãç°ãªããã©ã¡ãŒã¿ã§è€æ°ã®ã·ãã¥ã¬ãŒã·ã§ã³ãå®è¡ãããã®çµæãå¹³ååããããšã§ãçµæã®ç²ŸåºŠãåäžãããããšãã§ããŸãã
- ãªãœãŒã¹å©çšçã®åäžïŒäžŠåã³ã³ãã¥ãŒãã£ã³ã°ã¯ãè€æ°ã®ããã»ããµãåæã«äœ¿çšããããšã§å¹ççãªãªãœãŒã¹å©çšãå¯èœã«ããã¹ã«ãŒããããæå€§åããŸãã
䞊åã¢ã«ãŽãªãºã èšèšã®äž»èŠæŠå¿µ
䞊åã¢ã«ãŽãªãºã ã®èšèšãšå®è£ ã«ã¯ãããã€ãã®åºæ¬çãªäž»èŠæŠå¿µããããŸãã
1. åè§£
åè§£ãšã¯ãåé¡ãåæã«å®è¡ã§ããããå°ããç¬ç«ãããµãåé¡ã«åå²ããããšã§ããåè§£ã«ã¯äž»ã«2ã€ã®ã¢ãããŒãããããŸãã
- ããŒã¿åè§£ïŒå ¥åããŒã¿ãè€æ°ã®ããã»ããµã«åå²ããåããã»ããµãèªèº«ã®ããŒã¿éšåã«å¯ŸããŠåãæäœãå®è¡ããŸããäŸãšããŠãç»åç·šéã¢ããªã±ãŒã·ã§ã³ã§å€§ããªç»åãã»ã¯ã·ã§ã³ã«åå²ããå¥ã ã®ã³ã¢ã§åŠçããããšãæããããŸããå¥ã®äŸãšããŠã¯ãäžçã®ç°ãªãå°åã®å¹³åééšéãèšç®ããéã«ãåå°åãç°ãªãããã»ããµã«å²ãåœãŠãŠãã®å¹³åãèšç®ãããããšãèããããŸãã
- ã¿ã¹ã¯åè§£ïŒå šäœçãªã¿ã¹ã¯ãè€æ°ã®ç¬ç«ãããµãã¿ã¹ã¯ã«åå²ããåãµãã¿ã¹ã¯ãããã»ããµã«å²ãåœãŠãŸããäŸãšããŠããããªãšã³ã³ãŒãã£ã³ã°ãã€ãã©ã€ã³ããããç°ãªãããã»ããµããšã³ã³ãŒãã£ã³ã°ããã»ã¹ã®ç°ãªã段éïŒäŸïŒãã³ãŒããåãæšå®ããšã³ã³ãŒãïŒãåŠçããŸããå¥ã®äŸãšããŠã¯ãã¢ã³ãã«ã«ãã·ãã¥ã¬ãŒã·ã§ã³ã§ãåããã»ããµãç°ãªãä¹±æ°ã·ãŒããæã€äžé£ã®ã·ãã¥ã¬ãŒã·ã§ã³ãç¬ç«ããŠå®è¡ããããšãæããããŸãã
2. éä¿¡
å€ãã®äžŠåã¢ã«ãŽãªãºã ã§ã¯ãããã»ããµã¯äœæ¥ã調æŽããããã«äºãã«ããŒã¿ã亀æããå¿ èŠããããŸããéä¿¡ã¯äžŠåå®è¡ã«ãããŠå€§ããªãªãŒããŒãããã«ãªãå¯èœæ§ããããããéä¿¡éãæå°éã«æããéä¿¡ãã¿ãŒã³ãæé©åããããšãéèŠã§ãã以äžã®ãããªç°ãªãéä¿¡ã¢ãã«ãååšããŸãã
- å ±æã¡ã¢ãªïŒããã»ããµã¯å ±æã¡ã¢ãªã¢ã¯ã»ã¹ãä»ããŠéä¿¡ããŸãããã®ã¢ãã«ã¯éåžžããã¹ãŠã®ã³ã¢ãåãã¡ã¢ãªã«ã¢ã¯ã»ã¹ã§ãããã«ãã³ã¢ããã»ããµã§äœ¿çšãããŸãã
- ã¡ãã»ãŒãžããã·ã³ã°ïŒããã»ããµã¯ãããã¯ãŒã¯ãä»ããŠã¡ãã»ãŒãžãéåä¿¡ããããšã§éä¿¡ããŸãããã®ã¢ãã«ã¯éåžžãããã»ããµãç°ãªããã·ã³ã«é 眮ãããŠãã忣ã³ã³ãã¥ãŒãã£ã³ã°ã·ã¹ãã ã§äœ¿çšãããŸããMPI (Message Passing Interface) ã¯ãã¡ãã»ãŒãžããã·ã³ã°ã®åºã䜿ãããŠããæšæºã§ããäŸãã°ãæ°åã¢ãã«ã§ã¯ãã·ãã¥ã¬ãŒã·ã§ã³é åã®ç°ãªãå°åéã§ããŒã¿ã亀æããããã«MPIãé »ç¹ã«äœ¿çšãããŸãã
3. åæ
åæãšã¯ãè€æ°ã®ããã»ããµã®å®è¡ã調æŽããŠãå ±æãªãœãŒã¹ãžã®ã¢ã¯ã»ã¹ãäžè²«ããæ¹æ³ã§è¡ãããã¿ã¹ã¯éã®äŸåé¢ä¿ãæºããããããã«ããããã»ã¹ã§ããäžè¬çãªåææè¡ã«ã¯ä»¥äžã®ãããªãã®ããããŸãã
- ããã¯ïŒå ±æãªãœãŒã¹ãåæã¢ã¯ã»ã¹ããä¿è·ããããã«äœ¿çšãããŸããäžåºŠã«äžã€ã®ããã»ããµããããã¯ãä¿æã§ãããç«¶åç¶æ ãé²ããŸãã
- ããªã¢ïŒãã¹ãŠã®ããã»ããµãå®è¡ã®ããç¹å®ã®ç¹ã«å°éããŠããæ¬¡ã«é²ãããšãä¿èšŒããããã«äœ¿çšãããŸããããã¯ãèšç®ã®ããæ®µéãåã®æ®µéã®çµæã«äŸåããŠããå Žåã«äŸ¿å©ã§ãã
- ã»ããã©ïŒéãããæ°ã®ãªãœãŒã¹ãžã®ã¢ã¯ã»ã¹ãå¶åŸ¡ããããã«äœ¿çšã§ãããããäžè¬çãªåæããªããã£ãã§ãã
4. è² è·åæ£
è² è·åæ£ãšã¯ãå šäœã®ããã©ãŒãã³ã¹ãæå€§åããããã«ããã¹ãŠã®ããã»ããµã«äœæ¥è² è·ãåçã«åæ£ãããããã»ã¹ã§ããäœæ¥ã®äžåçãªåæ£ã¯ãäžéšã®ããã»ããµãã¢ã€ãã«ç¶æ ã«ãªããä»ã®ããã»ããµãéè² è·ã«ãªãããšã§ã䞊åå®è¡ã®å šäœçãªå¹çãäœäžãããå¯èœæ§ããããŸããè² è·åæ£ã¯ãéçïŒå®è¡åã«æ±ºå®ïŒãŸãã¯åçïŒå®è¡äžã«èª¿æŽïŒã«ããããšãã§ããŸããäŸãã°ãè€éãª3Dã·ãŒã³ã®ã¬ã³ããªã³ã°ã§ã¯ãåçè² è·åæ£ã«ãã£ãŠãçŸåšè² è·ã®å°ãªãããã»ããµã«ããå€ãã®ã¬ã³ããªã³ã°ã¿ã¹ã¯ãå²ãåœãŠãããšãã§ããŸãã
䞊åããã°ã©ãã³ã°ã¢ãã«ãšãã¬ãŒã ã¯ãŒã¯
䞊åã¢ã«ãŽãªãºã ãéçºããããã«ãããã€ãã®ããã°ã©ãã³ã°ã¢ãã«ãšãã¬ãŒã ã¯ãŒã¯ãå©çšå¯èœã§ãã
1. å ±æã¡ã¢ãªããã°ã©ãã³ã° (OpenMP)
OpenMP (Open Multi-Processing) ã¯ãå ±æã¡ã¢ãªäžŠåããã°ã©ãã³ã°ã®ããã®APIã§ããéçºè ãã³ãŒããç°¡åã«äžŠååã§ããããã«ããããã®äžé£ã®ã³ã³ãã€ã©æç€ºåãã©ã€ãã©ãªã«ãŒãã³ãç°å¢å€æ°ãæäŸããŸããOpenMPã¯éåžžããã¹ãŠã®ã³ã¢ãåãã¡ã¢ãªã«ã¢ã¯ã»ã¹ã§ãããã«ãã³ã¢ããã»ããµã§äœ¿çšãããŸããããŒã¿ãã¹ã¬ããéã§ç°¡åã«å ±æã§ããã¢ããªã±ãŒã·ã§ã³ã«é©ããŠããŸããOpenMPã®äžè¬çãªäœ¿çšäŸã¯ãç§åŠã·ãã¥ã¬ãŒã·ã§ã³ã®ã«ãŒãã䞊ååããŠèšç®ãé«éåããããšã§ããæ©ã®å¿åååžãèšç®ããããšãæ³åããŠã¿ãŠãã ãããOpenMPã䜿çšããããšã§ãæ©ã®åéšåãç°ãªãã¹ã¬ããã«å²ãåœãŠãè§£æãé«éåã§ããŸãã
2. 忣ã¡ã¢ãªããã°ã©ãã³ã° (MPI)
MPI (Message Passing Interface) ã¯ãã¡ãã»ãŒãžããã·ã³ã°äžŠåããã°ã©ãã³ã°ã®æšæºã§ããç°ãªããã·ã³äžã§å®è¡ãããŠããããã»ã¹éã§ã¡ãã»ãŒãžãéåä¿¡ããããã®äžé£ã®é¢æ°ãæäŸããŸããMPIã¯éåžžãããã»ããµãç°ãªããã·ã³ã«é 眮ãããŠãã忣ã³ã³ãã¥ãŒãã£ã³ã°ã·ã¹ãã ã§äœ¿çšãããŸããããŒã¿ãè€æ°ã®ãã·ã³ã«åæ£ããŠãããèšç®ã調æŽããããã«éä¿¡ãå¿ èŠãªã¢ããªã±ãŒã·ã§ã³ã«é©ããŠããŸããæ°åã¢ããªã³ã°ãèšç®æµäœååŠã¯ãã³ã³ãã¥ãŒã¿ã¯ã©ã¹ã¿å šäœã§ã®äžŠåå®è¡ã«MPIãå€çšããåéã§ããäŸãã°ãå šçã®æµ·æµãã¢ããªã³ã°ããã«ã¯ãæµ·æŽãã°ãªããã«åå²ããåã°ãªããã»ã«ãç°ãªãããã»ããµã«å²ãåœãŠãMPIãä»ããŠé£æ¥ããããã»ããµãšéä¿¡ãããå¿ èŠããããŸãã
3. GPUã³ã³ãã¥ãŒãã£ã³ã° (CUDA, OpenCL)
GPU (Graphics Processing Units) ã¯ãèšç®éçŽçãªã¿ã¹ã¯ã«é©ããé«åºŠã«äžŠåãªããã»ããµã§ããCUDA (Compute Unified Device Architecture) ã¯ãNVIDIAãéçºãã䞊åã³ã³ãã¥ãŒãã£ã³ã°ãã©ãããã©ãŒã ããã³ããã°ã©ãã³ã°ã¢ãã«ã§ããOpenCL (Open Computing Language) ã¯ãCPUãGPUããã®ä»ã®ã¢ã¯ã»ã©ã¬ãŒã¿ãå«ãç°çš®ãã©ãããã©ãŒã éã§ã®äžŠåããã°ã©ãã³ã°ã®ããã®ãªãŒãã³ã¹ã¿ã³ããŒãã§ããGPUã¯ãæ©æ¢°åŠç¿ãç»ååŠçãããã³å€§éã®ããŒã¿ã䞊åã«åŠçããå¿ èŠãããç§åŠã·ãã¥ã¬ãŒã·ã§ã³ã§äžè¬çã«äœ¿çšãããŸããæ·±å±€åŠç¿ã¢ãã«ã®ãã¬ãŒãã³ã°ã¯ãã®å®ç§ãªäŸã§ãããã¢ãã«ã®éã¿ãæŽæ°ããããã«å¿ èŠãªèšç®ã¯ãCUDAãOpenCLã䜿çšããŠGPUäžã§ç°¡åã«äžŠååã§ããŸããç©çã·ãã¥ã¬ãŒã·ã§ã³ã§çŸäžåã®ç²åã®æåãã·ãã¥ã¬ãŒãããããšãæ³åããŠã¿ãŠãã ãããGPUã¯ãããã®èšç®ãCPUãããã¯ããã«å¹ççã«åŠçã§ããŸãã
äžè¬çãªäžŠåã¢ã«ãŽãªãºã
å€ãã®ã¢ã«ãŽãªãºã ã¯ãããã©ãŒãã³ã¹ãåäžãããããã«äžŠååããããšãã§ããŸããäžè¬çãªäŸã«ã¯ä»¥äžã®ãããªãã®ããããŸãã
1. 䞊åãœãŒã
ãœãŒãã¯ã³ã³ãã¥ãŒã¿ãµã€ãšã³ã¹ã«ãããåºæ¬çãªæäœã§ããã䞊åãœãŒãã¢ã«ãŽãªãºã ã¯å€§èŠæš¡ãªããŒã¿ã»ããã®ãœãŒãã«ãããæéãå€§å¹ ã«ççž®ã§ããŸããäŸãšããŠã¯ä»¥äžã®éãã§ãã
- ããŒãžãœãŒãïŒããŒãžãœãŒãã¢ã«ãŽãªãºã ã¯ãããŒã¿ãå°ããªå¡ã«åå²ããåå¡ãç¬ç«ããŠãœãŒããããã®åŸãœãŒããããå¡ã䞊åã§ããŒãžããããšã§ãç°¡åã«äžŠååã§ããŸãã
- ã¯ã€ãã¯ãœãŒãïŒæ¬è³ªçã«ã¯é次çã§ãããã¯ã€ãã¯ãœãŒãã¯äžŠåå®è¡ã«é©å¿ãããããšãã§ããããŒã¿ãåå²ããç°ãªãããã»ããµã§ååž°çã«ããŒãã£ã·ã§ã³ããœãŒãããŸãã
- åºæ°ãœãŒãïŒç¹ã«æŽæ°ãæ±ãå Žåãåºæ°ãœãŒãã¯èšæ°ãšåé ã®ãã§ãŒãºãè€æ°ã®ããã»ããµã«åæ£ãããããšã§å¹ççã«äžŠååã§ããŸãã
ã°ããŒãã«ãªeã³ããŒã¹ãã©ãããã©ãŒã ã®èšå€§ãªé¡§å®¢ååŒãªã¹ãããœãŒãããããšãæ³åããŠã¿ãŠãã ããã䞊åãœãŒãã¢ã«ãŽãªãºã ã¯ãããŒã¿å ã®ãã¬ã³ãããã¿ãŒã³ãè¿ éã«åæããããã«äžå¯æ¬ ã§ãã
2. äžŠåæ¢çŽ¢
å€§èŠæš¡ãªããŒã¿ã»ããããç¹å®ã®é ç®ãæ¢çŽ¢ããããšã䞊ååã§ããŸããäŸãšããŠã¯ä»¥äžã®éãã§ãã
- 䞊åå¹ åªå æ¢çŽ¢ (BFS)ïŒã°ã©ãã¢ã«ãŽãªãºã ã§äœ¿çšãããå§ç¹ããŒãããä»ã®ãã¹ãŠã®ããŒããžã®æççµè·¯ãèŠã€ããŸããBFSã¯ãè€æ°ã®ããŒããåæã«æ¢çŽ¢ããããšã§äžŠååã§ããŸãã
- 䞊åäºåæ¢çŽ¢ïŒäºåæ¢çŽ¢ã¯ããœãŒãæžã¿ããŒã¿ã«å¯Ÿããéåžžã«å¹ççãªæ¢çŽ¢ã¢ã«ãŽãªãºã ã§ãããœãŒãæžã¿ããŒã¿ãå¡ã«åå²ããåå¡ãç¬ç«ããŠæ¢çŽ¢ããããšã§ãæ¢çŽ¢ã䞊ååã§ããŸãã
巚倧ãªã²ãã ããŒã¿ããŒã¹ããç¹å®ã®éºäŒåé åãæ¢çŽ¢ããããšãèããŠã¿ãŠãã ãããäžŠåæ¢çŽ¢ã¢ã«ãŽãªãºã ã¯ãé¢é£ããé åãç¹å®ããããã»ã¹ãå€§å¹ ã«é«éåã§ããŸãã
3. 䞊åè¡åæŒç®
è¡åã®ä¹ç®ãéè¡åãªã©ã®è¡åæŒç®ã¯ãå€ãã®ç§åŠæè¡èšç®ã¢ããªã±ãŒã·ã§ã³ã§äžè¬çã§ãããããã®æŒç®ã¯ãè¡åããããã¯ã«åå²ãããããã¯ã«å¯ŸããæŒç®ã䞊åã«å®è¡ããããšã§å¹ççã«äžŠååã§ããŸããäŸãã°ãæ©æ¢°æ§é ã®å¿åååžãèšç®ããã«ã¯ãå€§èŠæš¡ãªé£ç«äžæ¬¡æ¹çšåŒç³»ãè§£ãå¿ èŠããããããã¯è¡åæŒç®ãšããŠè¡šçŸã§ããŸãããããã®æŒç®ã䞊ååããããšã¯ãè€éãªæ§é ãé«ç²ŸåºŠã§ã·ãã¥ã¬ãŒã·ã§ã³ããããã«äžå¯æ¬ ã§ãã
4. 䞊åã¢ã³ãã«ã«ãã·ãã¥ã¬ãŒã·ã§ã³
ã¢ã³ãã«ã«ãã·ãã¥ã¬ãŒã·ã§ã³ã¯ãç°ãªãã©ã³ãã ãªå ¥åã§è€æ°ã®ã·ãã¥ã¬ãŒã·ã§ã³ãå®è¡ããããšã«ãããè€éãªã·ã¹ãã ãã¢ãã«åããããã«äœ¿çšãããŸããåã·ãã¥ã¬ãŒã·ã§ã³ã¯ç°ãªãããã»ããµã§ç¬ç«ããŠå®è¡ã§ãããããã¢ã³ãã«ã«ãã·ãã¥ã¬ãŒã·ã§ã³ã¯äžŠååã«éåžžã«é©ããŠããŸããäŸãã°ãéèåžå Žãæ žåå¿ã®ã·ãã¥ã¬ãŒã·ã§ã³ã¯ãç°ãªãã·ãã¥ã¬ãŒã·ã§ã³ã»ãããç°ãªãããã»ããµã«å²ãåœãŠãããšã§ç°¡åã«äžŠååã§ããŸããããã«ãããç ç©¶è ã¯ããåºç¯ãªã·ããªãªãæ¢æ±ããããæ£ç¢ºãªçµæãåŸãããšãã§ããŸããå°çèŠæš¡ã®äººå£ã«å¯Ÿããç æ°ã®èå»¶ãã·ãã¥ã¬ãŒãããããšãæ³åããŠã¿ãŠãã ãããåã·ãã¥ã¬ãŒã·ã§ã³ã¯ç°ãªããã©ã¡ãŒã¿ã»ãããã¢ãã«åããå¥ã ã®ããã»ããµã§ç¬ç«ããŠå®è¡ã§ããŸãã
䞊åã¢ã«ãŽãªãºã èšèšã«ããã課é¡
å¹ççãªäžŠåã¢ã«ãŽãªãºã ã®èšèšãšå®è£ ã¯å°é£ãªå ŽåããããŸããäžè¬çãªèª²é¡ã«ã¯ä»¥äžã®ãããªãã®ããããŸãã
- éä¿¡ãªãŒããŒãããïŒããã»ããµãäºãã«éä¿¡ããããã«å¿ èŠãªæéã¯ãç¹ã«åæ£ã³ã³ãã¥ãŒãã£ã³ã°ã·ã¹ãã ã«ãããŠå€§ããªãªãŒããŒãããã«ãªãå¯èœæ§ããããŸãã
- åæãªãŒããŒãããïŒããã»ããµãäºãã«åæããããã«å¿ èŠãªæéããç¹ã«ããã¯ãããªã¢ã䜿çšããå Žåã«å€§ããªãªãŒããŒãããã«ãªãå¯èœæ§ããããŸãã
- è² è·ã®äžåè¡¡ïŒäœæ¥ã®äžåçãªåæ£ã¯ãäžéšã®ããã»ããµãã¢ã€ãã«ç¶æ ã«ãªããä»ã®ããã»ããµãéè² è·ã«ãªãããšã§ã䞊åå®è¡ã®å šäœçãªå¹çãäœäžãããŸãã
- ãããã°ïŒäžŠåããã°ã©ã ã®ãããã°ã¯ãè€æ°ã®ããã»ããµã調æŽããè€éãã®ããã鿬¡ããã°ã©ã ã®ãããã°ãããå°é£ã«ãªãããšããããŸãã
- ã¹ã±ãŒã©ããªãã£ïŒã¢ã«ãŽãªãºã ã倿°ã®ããã»ããµã«å¯ŸããŠããŸãã¹ã±ãŒã«ããããšãä¿èšŒããã®ã¯é£ããå ŽåããããŸãã
䞊åã¢ã«ãŽãªãºã èšèšã®ãã¹ããã©ã¯ãã£ã¹
ãããã®èª²é¡ãå æããå¹ççãªäžŠåã¢ã«ãŽãªãºã ãèšèšããããã«ã¯ã以äžã®ãã¹ããã©ã¯ãã£ã¹ãèæ ®ããŠãã ããã
- éä¿¡ãæå°éã«æããïŒããã»ããµéã§éä¿¡ããå¿ èŠãããããŒã¿éãæžãããŸãããã€ã³ãããŒãã€ã³ãéä¿¡ãéå£éä¿¡ãªã©ã®å¹ççãªéä¿¡ãã¿ãŒã³ã䜿çšããŸãã
- åæãæžããïŒããã¯ãããªã¢ã®äœ¿çšãæå°éã«æããŸããå¯èœãªå Žåã¯éåæéä¿¡æè¡ã䜿çšããŸãã
- è² è·ã忣ãããïŒäœæ¥è² è·ããã¹ãŠã®ããã»ããµã«åçã«åæ£ãããŸããå¿ èŠã«å¿ããŠåçè² è·åæ£æè¡ã䜿çšããŸãã
- é©åãªããŒã¿æ§é ã䜿çšããïŒäžŠåã¢ã¯ã»ã¹ã«é©ããããŒã¿æ§é ãéžæããŸããå ±æã¡ã¢ãªããŒã¿æ§é ã忣ããŒã¿æ§é ã®äœ¿çšãæ€èšããŸãã
- 屿æ§ã®ããã«æé©åããïŒããŒã¿ã®å±ææ§ãæå€§åããããã«ããŒã¿ãšèšç®ãé 眮ããŸããããã«ããããªã¢ãŒãã¡ã¢ãªãã±ãŒã·ã§ã³ããããŒã¿ã«ã¢ã¯ã»ã¹ããå¿ èŠæ§ãæžå°ããŸãã
- ãããã¡ã€ãªã³ã°ãšåæïŒãããã¡ã€ãªã³ã°ããŒã«ã䜿çšããŠã䞊åã¢ã«ãŽãªãºã ã®ããã©ãŒãã³ã¹ããã«ããã¯ãç¹å®ããŸããçµæãåæããããã«å¿ããŠã³ãŒããæé©åããŸãã
- é©åãªããã°ã©ãã³ã°ã¢ãã«ãéžæããïŒã¢ããªã±ãŒã·ã§ã³ãšã¿ãŒã²ããããŒããŠã§ã¢ã«æãé©ããããã°ã©ãã³ã°ã¢ãã«ïŒOpenMPãMPIãCUDAïŒãéžæããŸãã
- ã¢ã«ãŽãªãºã ã®é©åæ§ãèæ ®ããïŒãã¹ãŠã®ã¢ã«ãŽãªãºã ã䞊ååã«é©ããŠããããã§ã¯ãããŸãããã¢ã«ãŽãªãºã ãåæããŠã广çã«äžŠååã§ãããã©ããã倿ããŸããäžéšã®ã¢ã«ãŽãªãºã ã«ã¯ã䞊ååã®å¯èœæ§ãå¶éããæ¬è³ªçãªé次äŸåé¢ä¿ãããå ŽåããããŸãã
䞊åã¢ã«ãŽãªãºã ã®å®äžçã§ã®å¿çš
䞊åã¢ã«ãŽãªãºã ã¯ã以äžã®ãããªå¹ åºãå®äžçã®ã¢ããªã±ãŒã·ã§ã³ã§äœ¿çšãããŠããŸãã
- ç§åŠæè¡èšç®ïŒæ°åå€åãæµäœååŠãåååååŠãªã©ã®ç©ççŸè±¡ã®ã·ãã¥ã¬ãŒã·ã§ã³ãäŸãã°ã欧å·äžæäºå ±ã»ã³ã¿ãŒïŒECMWFïŒã¯ã倩æ°äºå ±ã®ããã«HPCãšäžŠåã¢ã«ãŽãªãºã ãåºç¯å²ã«äœ¿çšããŠããŸãã
- å·¥åŠã·ãã¥ã¬ãŒã·ã§ã³ïŒèªç©ºæ©ãèªåè»ãæ©ãªã©ã®è€éãªå·¥åŠã·ã¹ãã ã®èšèšãšè§£æãäŸãšããŠã䞊åã³ã³ãã¥ãŒã¿äžã§å®è¡ãããæéèŠçŽ æ³ãçšããå°éæã®å»ºç©ã®æ§é è§£æãæããããŸãã
- éèã¢ããªã³ã°ïŒããªããã£ãã®äŸ¡æ Œèšå®ããªã¹ã¯ç®¡çãäžæ£æ€åºãé«é »åºŠååŒã¢ã«ãŽãªãºã ã¯ãååŒãè¿ éãã€å¹ççã«å®è¡ããããã«äžŠååŠçã«å€§ããäŸåããŠããŸãã
- ããŒã¿åæïŒãœãŒã·ã£ã«ã¡ãã£ã¢ããŒã¿ããŠã§ããµã€ãã®ãã°ãã»ã³ãµãŒããŒã¿ãªã©ã®å€§èŠæš¡ããŒã¿ã»ããã®åæãããŒã±ãã£ã³ã°åæãäžæ£æ€åºã®ããã«ãã¿ãã€ãçŽã®ããŒã¿ããªã¢ã«ã¿ã€ã ã§åŠçããã«ã¯ã䞊åã¢ã«ãŽãªãºã ãå¿ èŠã§ãã
- 人工ç¥èœïŒæ·±å±€åŠç¿ã¢ãã«ã®ãã¬ãŒãã³ã°ãèªç¶èšèªåŠçã·ã¹ãã ã®éçºãã³ã³ãã¥ãŒã¿ããžã§ã³ã¢ããªã±ãŒã·ã§ã³ã®äœæãå€§èŠæš¡èšèªã¢ãã«ã®ãã¬ãŒãã³ã°ã«ã¯ããã°ãã°è€æ°ã®GPUããã·ã³ã«ãŸããã忣ãã¬ãŒãã³ã°ãå¿ èŠã§ãã
- ãã€ãªã€ã³ãã©ããã£ã¯ã¹ïŒã²ãã ã·ãŒã±ã³ã·ã³ã°ãã¿ã³ãã¯è³ªæ§é äºæž¬ãåµè¬ã巚倧ãªã²ãã ããŒã¿ã»ããã®è§£æã«ã¯ã匷åãªäžŠååŠçèœåãå¿ èŠã§ãã
- å»çç»ååŠçïŒMRIãCTã¹ãã£ã³ããã®3Dç»åã®åæ§æããããã®åæ§æã¢ã«ãŽãªãºã ã¯èšç®éçŽçã§ããã䞊ååãã倧ããªæ©æµãåããŸãã
䞊åã¢ã«ãŽãªãºã ã®æªæ¥
èšç®èœåãžã®éèŠãå¢ãç¶ããã«ã€ããŠã䞊åã¢ã«ãŽãªãºã ã¯ããã«éèŠã«ãªãã§ãããã䞊åã¢ã«ãŽãªãºã èšèšã®å°æ¥ã®ãã¬ã³ãã«ã¯ã以äžã®ãããªãã®ããããŸãã
- ãšã¯ãµã¹ã±ãŒã«ã³ã³ãã¥ãŒãã£ã³ã°ïŒãšã¯ãµã¹ã±ãŒã«ã³ã³ãã¥ãŒã¿ïŒæ¯ç§1018åã®æµ®åå°æ°ç¹æŒç®ãå®è¡ã§ããã³ã³ãã¥ãŒã¿ïŒã§å¹ççã«å®è¡ã§ããã¢ã«ãŽãªãºã ãšãœãããŠã§ã¢ã®éçºã
- ããããžãã¢ã¹ã³ã³ãã¥ãŒãã£ã³ã°ïŒCPUãGPUãFPGAãªã©ã®ç°çš®ã³ã³ãã¥ãŒãã£ã³ã°ãªãœãŒã¹ã广çã«å©çšã§ããã¢ã«ãŽãªãºã ã®éçºã
- éåã³ã³ãã¥ãŒãã£ã³ã°ïŒå€å žã³ã³ãã¥ãŒã¿ã§ã¯è§£æ±ºäžå¯èœãªåé¡ã解決ããããã®éåã¢ã«ãŽãªãºã ã®å¯èœæ§ã®æ¢æ±ããŸã åææ®µéã§ãããéåã³ã³ãã¥ãŒãã£ã³ã°ã¯æå·åŠãææç§åŠãªã©ã®åéãé©åœçã«å€ããå¯èœæ§ãç§ããŠããŸãã
- èªåãã¥ãŒãã³ã°ïŒç°ãªãããŒããŠã§ã¢ãã©ãããã©ãŒã ã§ããã©ãŒãã³ã¹ãæé©åããããã«ããã©ã¡ãŒã¿ãèªåçã«é©å¿ãããããšãã§ããã¢ã«ãŽãªãºã ã®éçºã
- ããŒã¿ã¢ãŠã§ã¢ãªäžŠååŠçïŒããã©ãŒãã³ã¹ãåäžãããããã«ãåŠçãããããŒã¿ã®ç¹æ§ãèæ ®ããã¢ã«ãŽãªãºã ã®èšèšã
çµè«
䞊åã¢ã«ãŽãªãºã ã¯ãå¹ åºãåéã§èšç®éçŽçãªåé¡ã«åãçµãããã®éèŠãªããŒã«ã§ãã䞊åã¢ã«ãŽãªãºã èšèšã®äž»èŠãªæŠå¿µãšãã¹ããã©ã¯ãã£ã¹ãçè§£ããããšã§ãéçºè ã¯ãã«ãã³ã¢ããã»ããµãGPUã忣ã³ã³ãã¥ãŒãã£ã³ã°ã¯ã©ã¹ã¿ã®åãæŽ»çšããŠãå€§å¹ ãªããã©ãŒãã³ã¹åäžãéæã§ããŸããæè¡ãé²åãç¶ããã«ã€ããŠã䞊åã¢ã«ãŽãªãºã ã¯ã€ãããŒã·ã§ã³ãæšé²ããäžçã§æãå°é£ãªåé¡ã®ããã€ãã解決ããäžã§ããŸããŸãéèŠãªåœ¹å²ãæããã§ããããç§åŠççºèŠãå·¥åŠçãã¬ãŒã¯ã¹ã«ãŒããã人工ç¥èœãããŒã¿åæã«è³ããŸã§ã䞊åã¢ã«ãŽãªãºã ã®åœ±é¿ã¯ä»åŸãå¢å€§ãç¶ããŸããããªããçç·ŽããHPCã®å°éå®¶ã§ããã䞊åã³ã³ãã¥ãŒãã£ã³ã°ã®äžçãæ¢æ±ãå§ããã°ããã§ããã䞊åã¢ã«ãŽãªãºã ãç¿åŸããããšã¯ã仿¥ã®ããŒã¿é§ååã®äžçã§å€§èŠæš¡ãªèšç®åé¡ã«åãçµããã¹ãŠã®äººã«ãšã£ãŠäžå¯æ¬ ãªã¹ãã«ã§ãã